//package com.lh.center.common.web.config;
//
//import cn.easyutil.easyapi.handler.HandlerChain;
//import cn.easyutil.easyapi.handler.extra.ResponseExtra;
//import cn.easyutil.easyapi.logic.creator.MethodParam;
//import cn.easyutil.easyapi.parameterized.GenericTypeUtil;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl;
//
//import java.lang.reflect.Method;
//import java.lang.reflect.Type;
//import java.util.Collections;
//import java.util.List;
//
///**
// * mybatisPlus的page作为接口返回时的处理
// */
//public class MybatisPlusPageReturnTypeHandlerChain extends HandlerChain<ResponseExtra, List<MethodParam>> {
//
//    @Override
//    public List<MethodParam> resolve(ResponseExtra extra, List<MethodParam> transfer) {
//        //获取接口方法
//        Method method = extra.getInterfaceExtra().getMethod();
//        //如果是mybatisPlus的分页对象，则进行处理
//        if(IPage.class.isAssignableFrom(method.getReturnType())){
//            MethodParam param = new MethodParam();
//            Type type = GenericTypeUtil.getGenericTypes(method.getGenericReturnType(), 0);
//            param.setParamType(ParameterizedTypeImpl.make(List.class,new Type[]{type},null));
//            return Collections.singletonList(param);
//        }
//        //否则交给下一个handler去处理
//        return nextHandler().resolve(extra, transfer);
//    }
//}
